Skip to content

2076-3 Support - #211

Open
rsjbailey wants to merge 9 commits into
masterfrom
2076-3-pr
Open

2076-3 Support#211
rsjbailey wants to merge 9 commits into
masterfrom
2076-3-pr

Conversation

@rsjbailey

Copy link
Copy Markdown
Contributor

Adds support for:

  • Cartesian subelement on DirectSpeakers type audioBlockFormat
  • tagList and subelements
  • profileList and subelements
  • authoringInformation subelement on audioProgramme, and authoringInformation's subelements

Many of these new elements reference other elements by ID.

Removing the referenced elements from a document in a way that would otherwise make the document invalid, causes these elements to be removed as well, this can happen recursively in some cases where removing that element causes its parent to also be invalidated.

Copilot was used in this PR, but primarily for re-arranging a long sequence of commits that explored a couple of different approaches, into something a bit more approachable.

Mirrors semantics on Objects type block format regarding interaction with the
used coordinate type

fix formatting
We were using a very old vcpkg revision that attempted to download a version of 7zip that is no longer available.
Updating to the latest action version while we're touching the build file
Were also experiencing a build failure due to msys2 / gcc being used on Windows,
so have added the ilammy/msvc-dev-cmd action to setup an MSVC environment.

The build failure was possibly exposing a legitimate issue (using dllimport on template
functions), but out of scope for this.
@davemar-bbc

Copy link
Copy Markdown
Collaborator

tagList and profileList seem to work fine with my code. Will check the other parts.
Will the extra dialogue category be added to audioContent?

@rsjbailey

rsjbailey commented Jul 20, 2026

Copy link
Copy Markdown
Contributor Author

tagList and profileList seem to work fine with my code. Will check the other parts. Will the extra dialogue category be added to audioContent?

Had a look at the relevant bit of 2076 and added two new constants / revised the range checks - does e373433 look right / do what you'd expect?

Introduce Tag, TagGroup, TagList wiring in the public API and XML parser/formatter, reuse ProfileList from SADM in ADM Document

Review-depth: high

Review-reason: Adds new user-visible ADM elements and XML behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@rsjbailey

rsjbailey commented Jul 21, 2026

Copy link
Copy Markdown
Contributor Author

Merged a few bug fixes into the relevant commits

  • TagGroup had a bug with it's equality operator (it only compared the tag, not the references)
  • The tagGroup class attribute is optional but was serialized as if it were required, which caused an error on serializing a tagGroup where that parameter was not present
  • rendererUri is required on an authoring renderer, but optional on a loudness renderer - it was previously optional on both which was incorrect.
  • There were a couple of errors in the export declarations of some TagGroup methods which caused shared library builds to fail
  • A weird one I fixed without managing to precisely diagnose - A variable wasn't 'seen' on MSVC inside a lambda that used the [&] specifier to capture all used variables. Adding it explicitly as a named capture worked as expected, and is better practice regardless. Was fine on all other compilers, works everywhere now.
  • Various formatting issues

@rsjbailey

rsjbailey commented Jul 22, 2026

Copy link
Copy Markdown
Contributor Author

A few more tweaks

  • Replaced all the newly introduced weak_ptr references with shared_ptr as it added complexity while not actually solving anything (we already do manual pruning on document removal, there are no reference cycles to break)
  • Fixed an issue where authoring renderers that only differed by the referenced target pack were dropped on parse

rsjbailey and others added 6 commits July 22, 2026 15:48
Move TagList/ProfileList auxiliary copying into shared copy machinery, remap TagGroup references during deepCopy, and centralize TagGroup pruning with template-based remove-side logic.

Review-depth: high

Review-reason: Alters deep-copy semantics and document remove side effects for TagList references.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Introduce loudnessMetadata.renderer support, shared renderer parameter types, and parser/formatter integration with dedicated unit and XML tests.

Review-depth: high

Review-reason: Adds new ADM element behavior and serialization semantics.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…er interop [copilot]

Add authoringInformation and coordinateMode support on audioProgrammeReferenceScreen, wire renderer interop APIs, and integrate parser/formatter/copy behavior with tests.

Review-depth: high

Review-reason: Introduces new programme metadata structures and cross-element interop behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…forward parsing [copilot]

- Add ReferenceLayout type
- Remap renderer references on document deepCopy() + tests
- Ensure renderer references located after renderer parse correctly
- Guard against very deeply nested documents overflowing the stack on add()
NonDialogueContentKind::MUSIC_AND_EFFECTS and
MixedContentKind::COMPLETE_HEARING_IMPAIRED_AD
@rsjbailey

Copy link
Copy Markdown
Contributor Author
  • Merged profileList deepCopy test into commit that implements the copy
  • Renamed 'Renderer' to 'AuthoringRenderer' for clarity.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants